package cn.exrick.xboot.modules.biddataproject.controller;

import cn.exrick.xboot.common.utils.PageUtil;
import cn.exrick.xboot.common.utils.ResultUtil;
import cn.exrick.xboot.common.vo.PageVo;
import cn.exrick.xboot.common.vo.Result;
import cn.exrick.xboot.common.vo.SearchVo;
import cn.exrick.xboot.modules.biddataproject.entity.BidDataProtect;
import cn.exrick.xboot.modules.biddataproject.entity.BidDataProtectTable;
import cn.exrick.xboot.modules.biddataproject.entity.ProjectDeptList;
import cn.exrick.xboot.modules.biddataproject.entity.SelectData;
import cn.exrick.xboot.modules.biddataproject.service.IBidDataProtectService;
import cn.exrick.xboot.modules.projectinfo.entity.CompanyNumberAmount;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @author sdtf
 */
@Slf4j
@RestController
@DS("other")
@Api(tags = "合同信息管理接口")
@RequestMapping("/xboot/bidDataProtect")
@Transactional
public class BidDataProtectController {

    @Autowired
    private IBidDataProtectService iBidDataProtectService;

    @RequestMapping(value = "/getByCondition", method = RequestMethod.GET)
    @ApiOperation(value = "多条件分页获取")
    public Result<IPage<BidDataProtect>> getByCondition(BidDataProtect bidDataProtect, PageVo page) {
        QueryWrapper<BidDataProtect> qw = new QueryWrapper<>();
        // id模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getId()), "id", bidDataProtect.getId());
        // 版本号相等匹配
        qw.eq(bidDataProtect.getVersions() != null, "versions", bidDataProtect.getVersions());
        // 创建人模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getCreateName()), "create_name", bidDataProtect.getCreateName());
        // 创建时间相等匹配
        qw.eq(bidDataProtect.getCreateDate() != null, "create_date", bidDataProtect.getCreateDate());
        // 更新人模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getUpdateName()), "update_name", bidDataProtect.getUpdateName());
        // 更新时间相等匹配
        qw.eq(bidDataProtect.getUpdateDate() != null, "update_date", bidDataProtect.getUpdateDate());
        // 归档号模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectFileNo()), "project_file_no", bidDataProtect.getProjectFileNo());
        // 项目名称模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectName()), "project_name", bidDataProtect.getProjectName());
        // 项目专业模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectMajor()), "project_major", bidDataProtect.getProjectMajor());
        // 项目级别模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectLevel()), "project_level", bidDataProtect.getProjectLevel());
        // 所属单位（部门)模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectDept()), "project_dept", bidDataProtect.getProjectDept());
        // 合同金额相等匹配
        qw.eq(bidDataProtect.getContractFee() != null, "contract_fee", bidDataProtect.getContractFee());
        // 项目投资金额相等匹配
        qw.eq(bidDataProtect.getProjectFee() != null, "project_fee", bidDataProtect.getProjectFee());
        // 签订日期相等匹配
        qw.eq(bidDataProtect.getSignDate() != null, "sign_date", bidDataProtect.getSignDate());
        // 是否框架合同模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getIsFrame()), "is_frame", bidDataProtect.getIsFrame());
        // 是否政府采购模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getIsPolitical()), "is_political", bidDataProtect.getIsPolitical());
        // 框架合同编号模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getFrameNo()), "frame_no", bidDataProtect.getFrameNo());
        // 合同编号模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getContractNo()), "contract_no", bidDataProtect.getContractNo());
        // contractNoCustomer模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getContractNoCustomer()), "contract_no_customer", bidDataProtect.getContractNoCustomer());
        // 归档地模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getFileDept()), "file_dept", bidDataProtect.getFileDept());
        // 客户名称模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getCustomerName()), "customer_name", bidDataProtect.getCustomerName());
        // 客户类型(字典）模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getCustomerType()), "customer_type", bidDataProtect.getCustomerType());
        // 建设单位联系人模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getContactsName()), "contacts_name", bidDataProtect.getContactsName());
        // 建设单位联系人电话模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getContactsPhone()), "contacts_phone", bidDataProtect.getContactsPhone());
        // 所属区域模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectArea()), "project_area", bidDataProtect.getProjectArea());
        // 项目负责人模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getPmName()), "pm_name", bidDataProtect.getPmName());
        // 身份证号模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getPmNo()), "pm_no", bidDataProtect.getPmNo());
        // 项目参与人模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getTeamMember()), "team_member", bidDataProtect.getTeamMember());
        // 项目经理模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProjectManager()), "project_manager", bidDataProtect.getProjectManager());
        // 发票金额相等匹配
        qw.eq(bidDataProtect.getInvoiceFee() != null, "invoice_fee", bidDataProtect.getInvoiceFee());
        // 项目概况模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getMemo()), "memo", bidDataProtect.getMemo());
        // 采购方式模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getProcurementMethod()), "procurement_method", bidDataProtect.getProcurementMethod());
        // 采购级别模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getPurchaseLevel()), "purchase_level", bidDataProtect.getPurchaseLevel());
        // 毛利率相等匹配
        qw.eq(bidDataProtect.getGrossMargin() != null, "gross_margin", bidDataProtect.getGrossMargin());
        // 招标日期相等匹配
        qw.eq(bidDataProtect.getTenderDate() != null, "tender_date", bidDataProtect.getTenderDate());
        // 投标系统编号模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getTenderNo()), "tender_no", bidDataProtect.getTenderNo());
        // 业绩状态模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getStatus()), "status", bidDataProtect.getStatus());
        // 审核状态模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getAuditStatus()), "audit_status", bidDataProtect.getAuditStatus());
        // 竣工资料有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getCompletionDataStatus()), "completion_data_status", bidDataProtect.getCompletionDataStatus());
        // 中标通知书有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getBidWinningNoticeStatus()), "bid_winning_notice_status", bidDataProtect.getBidWinningNoticeStatus());
        // 发票有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getInvoiceStatus()), "invoice_status", bidDataProtect.getInvoiceStatus());
        // 验收资料有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getAcceptanceDataStatus()), "acceptance_data_status", bidDataProtect.getAcceptanceDataStatus());
        // 发票真伪验证有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getInvoiceAuthenticityStatus()), "invoice_authenticity_status", bidDataProtect.getInvoiceAuthenticityStatus());
        // 全税查询有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getFullTaxStatus()), "full_tax_status", bidDataProtect.getFullTaxStatus());
        // 获奖1有无模糊搜素
        //qw.like(StrUtil.isNotBlank(bidDataProtect.getAward1Status()), "award1_status", bidDataProtect.getAward1Status());
        // 获奖2有无模糊搜素
        //qw.like(StrUtil.isNotBlank(bidDataProtect.getAward2Status()), "award2_status", bidDataProtect.getAward2Status());
        // 表扬信有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getCommendationLetterStatus()), "commendation_letter_status", bidDataProtect.getCommendationLetterStatus());
        // 现场照片有无模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getSitePhotosStatus()), "site_photos_status", bidDataProtect.getSitePhotosStatus());
        // 是否是合并订单模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getConsolidatedStatus()), "consolidated_status", bidDataProtect.getConsolidatedStatus());
        // 是否生成下载订单模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getDownloadStatus()), "download_status", bidDataProtect.getDownloadStatus());
        // 回退原因模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getRejectComments()), "reject_comments", bidDataProtect.getRejectComments());
        // 数据迁移主键模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getKeyId()), "key_id", bidDataProtect.getKeyId());
        // xyAddFlag相等匹配
        qw.eq(bidDataProtect.getXyAddFlag() != null, "xy_add_flag", bidDataProtect.getXyAddFlag());
        // htlx模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getHtlx()), "htlx", bidDataProtect.getHtlx());
        // htxz模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getHtxz()), "htxz", bidDataProtect.getHtxz());
        // htfl模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getHtfl()), "htfl", bidDataProtect.getHtfl());
        // cpmc模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getCpmc()), "cpmc", bidDataProtect.getCpmc());
        // sfgljy模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getSfgljy()), "sfgljy", bidDataProtect.getSfgljy());
        // sfzdht模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getSfzdht()), "sfzdht", bidDataProtect.getSfzdht());
        // sfzb模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getSfzb()), "sfzb", bidDataProtect.getSfzb());
        // qslx模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getQslx()), "qslx", bidDataProtect.getQslx());
        // wblx模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getWblx()), "wblx", bidDataProtect.getWblx());
        // tzlx模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getTzlx()), "tzlx", bidDataProtect.getTzlx());
        // sfzsxt模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getSfzsxt()), "sfzsxt", bidDataProtect.getSfzsxt());
        // xtlx模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getXtlx()), "xtlx", bidDataProtect.getXtlx());
        // zyhte相等匹配
        qw.eq(bidDataProtect.getZyhte() != null, "zyhte", bidDataProtect.getZyhte());
        // zzkhhy模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getZzkhhy()), "zzkhhy", bidDataProtect.getZzkhhy());
        // jfhtmc模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getJfhtmc()), "jfhtmc", bidDataProtect.getJfhtmc());
        // khlx模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getKhlx()), "khlx", bidDataProtect.getKhlx());
        // zzkh模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getZzkh()), "zzkh", bidDataProtect.getZzkh());
        // wfqddw模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getWfqddw()), "wfqddw", bidDataProtect.getWfqddw());
        // ssdy模糊搜素
        qw.like(StrUtil.isNotBlank(bidDataProtect.getSsdy()), "ssdy", bidDataProtect.getSsdy());
        // sj相等匹配
        qw.eq(bidDataProtect.getSj() != null, "sj", bidDataProtect.getSj());
        IPage<BidDataProtect> data = iBidDataProtectService.page(PageUtil.initMpPage(page), qw);
        return new ResultUtil<IPage<BidDataProtect>>().setData(data);
    }

    @RequestMapping(value = "/getContractRanking", method = RequestMethod.GET)
    @ApiOperation(value = "获取大合同排行")
    public Result<IPage<BidDataProtect>> getContractRanking(BidDataProtect bidDataProtect, SearchVo searchVo, PageVo page) throws ParseException {

        QueryWrapper<BidDataProtect> qw = new QueryWrapper<>();
        // 签订日期相等匹配
        if(searchVo.getStartDate()!= "" && searchVo.getEndDate() != ""){
            DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar cal = Calendar.getInstance();
            cal.setTime(sdf.parse(searchVo.getEndDate()));
            cal.add(Calendar.DAY_OF_MONTH, 1);//加1天
            searchVo.setEndDate(sdf.format(cal.getTime()));
            Date start = sdf.parse(searchVo.getStartDate());
            Date end = sdf.parse(searchVo.getEndDate());
            qw.between("sign_date",start, end);
        }
        // 是否框架合同
        qw.ne("is_frame","1");
        qw.eq("status","1");
        qw.eq("audit_status","1");
        String[] customerTypeArray = bidDataProtect.getCustomerTypeArray();
        if (customerTypeArray == null || customerTypeArray[0].equals("false")) {
            qw.in("customer_type","14", "13", "12", "11", "10","1", "2", "3", "4", "5","6", "7", "8", "9" );
        }else {
            List<String> list = new ArrayList<>(Arrays.asList(customerTypeArray));
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i).equals("极客")) {
                    for(int j = 1; j < 10; j++){
                        String s = Integer.toString(j);
                        list.add(s);
                    }
                }
            }
            qw.in("customer_type",list);
        }

        List<ProjectDeptList> projectDeptlist = iBidDataProtectService.getProjectDeptlist();

        IPage<BidDataProtect> data = iBidDataProtectService.page(PageUtil.initMpPage(page), qw);

        List<BidDataProtect> records = data.getRecords();

        for(BidDataProtect b : records){
            String projectDept = b.getProjectDept();
            if(projectDept != null){
                for(ProjectDeptList p : projectDeptlist){
                    if(projectDept.equals(p.getBidCode())){
                        b.setProjectDept(p.getBidName());
                    }
                }
            }

        }

        return new ResultUtil<IPage<BidDataProtect>>().setData(data);
    }

    /**
     * 整体分析
     */
    @RequestMapping(value = "/getAnalysis", method = RequestMethod.GET)
    @ApiOperation(value = "整体分析")
    public Result getAnalysis() {
        List<BidDataProtectTable> analysis = iBidDataProtectService.getAnalysis();
        return new ResultUtil<List<BidDataProtectTable>>().setData(analysis);
    }

    /**
     * 整体分析本月
     */
    @RequestMapping(value = "/getAnalysisMonth", method = RequestMethod.GET)
    @ApiOperation(value = "整体分析本月")
    public Result getAnalysisMonth(String str) {
        List<BidDataProtectTable> analysisMonth = iBidDataProtectService.getAnalysisMonth(str);
        return new ResultUtil<List<BidDataProtectTable>>().setData(analysisMonth);
    }

    /**
     * 整体跨年分析
     */
    @RequestMapping(value = "/getAnalysisYears", method = RequestMethod.GET)
    @ApiOperation(value = "整体跨年分析")
    public Result getAnalysisYears() {
        List<BidDataProtectTable> analysisYears= iBidDataProtectService.getAnalysisYears();
        return new ResultUtil<List<BidDataProtectTable>>().setData(analysisYears);
    }

    /**
     * 大客户排行
     */
    @RequestMapping(value = "/getCustomerRanking", method = RequestMethod.GET)
    @ApiOperation(value = "大客户排行")
    public Result getCustomerRanking(BidDataProtect bidDataProtect) {
        String[] customerTypeArray = bidDataProtect.getCustomerTypeArray();
        String month = bidDataProtect.getMonth();
        List<ProjectDeptList> customerRanking = iBidDataProtectService.getCustomerRanking(customerTypeArray,month);
        return new ResultUtil<List<ProjectDeptList>>().setData(customerRanking);
    }


    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
    public Result<BidDataProtect> get(@PathVariable String id) {

        BidDataProtect bidDataProtect = iBidDataProtectService.getById(id);
        return new ResultUtil<BidDataProtect>().setData(bidDataProtect);
    }

    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<BidDataProtect>> getAll() {

        List<BidDataProtect> list = iBidDataProtectService.list();
        return new ResultUtil<List<BidDataProtect>>().setData(list);
    }

    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<BidDataProtect>> getByPage(PageVo page) {

        IPage<BidDataProtect> data = iBidDataProtectService.page(PageUtil.initMpPage(page));
        return new ResultUtil<IPage<BidDataProtect>>().setData(data);
    }

    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<BidDataProtect> saveOrUpdate(BidDataProtect bidDataProtect) {

        if (iBidDataProtectService.saveOrUpdate(bidDataProtect)) {
            return new ResultUtil<BidDataProtect>().setData(bidDataProtect);
        }
        return new ResultUtil<BidDataProtect>().setErrorMsg("操作失败");
    }

    @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
    @ApiOperation(value = "批量通过id删除")
    public Result delAllByIds(@RequestParam String[] ids) {

        for (String id : ids) {
            iBidDataProtectService.removeById(id);
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }

    @RequestMapping(value = "/seleteNumberMoneyByYear", method = RequestMethod.GET)
    @ApiOperation(value = "查找年度相关数据")
    public Result seleteNumberMoneyByYear() {
        SelectData selectData=iBidDataProtectService.seleteNumberMoneyByYear();
        return new ResultUtil<SelectData>().setData(selectData);
    }

    @RequestMapping(value = "/seleteNumberMoneyByMonth", method = RequestMethod.GET)
    @ApiOperation(value = "查找月度相关数据")
    public Result seleteNumberMoneyByMonth() {
        SelectData selectData=iBidDataProtectService.seleteNumberMoneyByMonth();
        return new ResultUtil<SelectData>().setData(selectData);
    }

    @RequestMapping(value = "/selectCountMoneyByOperator", method = RequestMethod.GET)
    @ApiOperation(value = "查找运营商年度相关数据")
    public Result selectCountMoneyByOperator() {
        SelectData selectData=iBidDataProtectService.selectCountMoneyByOperator();
        return new ResultUtil<SelectData>().setData(selectData);
    }

    @RequestMapping(value = "/selectCountMoneyByOperatorByMonth", method = RequestMethod.GET)
    @ApiOperation(value = "查找运营商月度相关数据")
    public Result selectCountMoneyByOperatorByMonth() {
        SelectData selectData=iBidDataProtectService.selectCountMoneyByOperatorByMonth();
        return new ResultUtil<SelectData>().setData(selectData);
    }

    @RequestMapping(value = "/selectCountMoneyByGroup", method = RequestMethod.GET)
    @ApiOperation(value = "查找集客年度相关数据")
    public Result selectCountMoneyByGroup() {
       SelectData selectData=iBidDataProtectService.selectCountMoneyByGroup();
        return new ResultUtil<SelectData>().setData(selectData);
    }
    @RequestMapping(value = "/selectCountMoneyByGroupByMonth", method = RequestMethod.GET)
    @ApiOperation(value = "查找集客月度相关数据")
    public Result selectCountMoneyByGroupByMonth() {
        SelectData selectData=iBidDataProtectService.selectCountMoneyByGroupByMonth();
        return new ResultUtil<SelectData>().setData(selectData);
    }

    @RequestMapping(value = "/bidYear", method = RequestMethod.GET)
    @ApiOperation(value = "年度合同金额排行")
    public Result selectBidYear() {
       List<SelectData>selectData =iBidDataProtectService.selectBidYear();
        return new ResultUtil<List<SelectData>>().setData(selectData);
    }

    @RequestMapping(value = "/bidMonth", method = RequestMethod.GET)
    @ApiOperation(value = "本月合同金额排行")
    public Result bidMonth() {
        List<SelectData>selectData =iBidDataProtectService.selectBidMonth();
        return new ResultUtil<List<SelectData>>().setData(selectData);
    }

    @RequestMapping(value = "/NewBid", method = RequestMethod.GET)
    @ApiOperation(value = "最新中标项目")
    public Result NewBid() {
        List<SelectData>selectData =iBidDataProtectService.selectNewBid();
        return new ResultUtil<List<SelectData>>().setData(selectData);
    }

    @RequestMapping(value = "/bidYear1", method = RequestMethod.GET)
    @ApiOperation(value = "经营单位合同签订情况")
    public Result selectBidYear1() {
        LinkedList<Object> selectData = iBidDataProtectService.selectBidYear1();
        return new ResultUtil<LinkedList<Object>>().setData(selectData);
    }

    @RequestMapping(value = "/customerType", method = RequestMethod.GET)
    @ApiOperation(value = "客户类型")
    public Result selectCustomerType() {
        LinkedList<Object> selectData = iBidDataProtectService.selectCustomerType();
        return new ResultUtil<LinkedList<Object>>().setData(selectData);
    }

    /**
     * 二级菜单路由： 合同签订数量，本年
     */
    @RequestMapping(value = "/bidNumAndMoneyByYear", method = RequestMethod.GET)
    @ApiOperation(value = "合同签订数量金额本年")
    public Result bidNumAndMoneyByYear() {
        LinkedList<Object> selectData = iBidDataProtectService.bidNumAndMoneyByYear();
        return new ResultUtil<LinkedList<Object>>().setData(selectData);
    }

    /**
     * 二级菜单路由： 合同签订数量，本月
     */
    @RequestMapping(value = "/bidNumAndMoneyByMonth", method = RequestMethod.GET)
    @ApiOperation(value = "合同签订数量金额本月")
    public Result bidNumAndMoneyByMonth() {
        LinkedList<Object> selectData = iBidDataProtectService.bidNumAndMoneyByMonth();
        return new ResultUtil<LinkedList<Object>>().setData(selectData);
    }

}
